package com.projeto.bola.web.perfil;

import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;


@ManagedBean(name="perfilBean")
@RequestScoped
public class PerfilBean {
	
	private Perfil perfilSelecionado = new Perfil();
	private List<Perfil> lista = null;
	private List<SelectItem> perfilSelect;
	
	
	public List<SelectItem> getPerfilSelect() {
		if (perfilSelect == null){
			
			perfilSelect = new ArrayList<SelectItem>();
			
			PerfilRN perfilRN = new PerfilRN();
			
			List<Perfil> listaPerfis = perfilRN.listar();
			
			if(listaPerfis != null && !listaPerfis.isEmpty()){
				SelectItem item;
				for (Perfil perfilLista : listaPerfis){
					item = new SelectItem(perfilLista,perfilLista.getNome());
					perfilSelect.add(item);
				}
				
			}
			
		}
		return perfilSelect;
	}

	
	
	public void salvar(){
		PerfilRN perfilRN = new PerfilRN();
		if(this.perfilSelecionado.getId() != null && this.perfilSelecionado.getId()!=0){
			perfilRN.alterar(this.perfilSelecionado);
			FacesMessage faces = new FacesMessage(
					"Perfil alterado com sucesso!");
			FacesContext contexto = FacesContext.getCurrentInstance();
			contexto.addMessage(null, faces);
			novo();
		}else{
			perfilRN.salvar(perfilSelecionado);
			FacesMessage faces = new FacesMessage(
					"Perfil cadastrado com sucesso!");
			FacesContext contexto = FacesContext.getCurrentInstance();
			contexto.addMessage(null, faces);
			novo();
		}
		
		this.lista = null;
	}
	
	public Perfil getPerfilSelecionado() {
		return perfilSelecionado;
	}
	public void setPerfilSelecionado(Perfil perfilSelecionado) {
		this.perfilSelecionado = perfilSelecionado;
	}
	
	public List<Perfil> getLista() {
		PerfilRN perfilRN = new PerfilRN();
		if(lista == null){
			lista = perfilRN.listar();
		}
		return lista;
	}
		
	public void excluir(){
		PerfilRN perfilRN = new PerfilRN();
		perfilRN.excluir(this.perfilSelecionado);
		this.lista=null;
	}
	
	public void novo(){
		this.perfilSelecionado = new Perfil();
	}
}
